<?php

class Nombre extends Eloquent {

    /**
     * The database table used by the model.
     *
     * @var string
     */
    protected $table = 'nombres';
    public $timestamps = false;

    /**
     * Reglas de validación
     * @var array 
     */
    public static $rules = array(
        'nombre' => 'required',
        'color' => 'required|numeric',
        'genero' => 'required|numeric',
        'tamano' => 'required|numeric',
    );

    /**
     * Devuelve un array con los elementos sobre los que buscar
     * 
     * @return array Elementos sobre los que se puede buscar un nombre
     */
    public static function getQueBuscar() {
        return array(
            'nombre' => Utils::__u('nombre'),
            'color' => Utils::__u('color'),
            'genero' => Utils::__u('genero'),
            'tamano' => Utils::__u('tamano')
        );
    }

    /**
     * Establecer el nombre
     * @param string $nombre
     */
    public function setNombre($nombre = "") {
        $this->nombre = $nombre;
    }

    /**
     * 
     * @return Genero
     */
    public function genero() {
        return $this->belongsTo('Genero', 'genero_id');
    }

    /**
     * Establecer la FK del género
     * @param Genero $genero
     */
    public function setGenero($genero) {
        if ($genero->id) {
            $this->genero_id = $genero->id;
        } else if (is_numeric($genero)) {
            $this->genero_id = $genero;
        }
    }

    /**
     * 
     * @return Tamano
     */
    public function tamano() {
        return $this->belongsTo('Tamano', 'tamano_id');
    }

    /**
     * Establecer la FK del género
     * @param Genero $tamano
     */
    public function setTamano($tamano) {
        if ($tamano->id) {
            $this->tamano_id = $tamano->id;
        } else if (is_numeric($tamano)) {
            $this->tamano_id = $tamano;
        }
    }

    /**
     * 
     * @return Color
     */
    public function color() {
        return $this->belongsTo('Color', 'color_id');
    }

    /**
     * Establecer la FK del género
     * @param Genero $color
     */
    public function setColor($color) {
        if ($color->id) {
            $this->color_id = $color->id;
        } else if (is_numeric($color)) {
            $this->color_id = $color;
        }
    }

    /**
     * 
     * @return array
     */
    public function toArray() {
        return array(
            'id' => $this->id,
            'nombre' => $this->nombre,
            'genero' => ($this->genero) ? $this->genero->tipo : '',
            'color' => ($this->color) ? $this->color->tipo : '',
            'tamano' => ($this->tamano) ? $this->tamano->tipo : '',
        );
    }

    /**
     * 
     * @return string toString
     */
    public function __toString() {
        $s = "Nombre{ id: " . ($this->id) ? $this->id : '_nid_';
        $s .= ", nombre: " . ($this->nombre) ? $this->nombre : '_nombre_';
        $s .= ", genero: " . ($this->genero) ? $this->genero : '_genero_';
        $s .= ", color: " . ($this->color) ? $this->color : '_color_';
        $s .= ", tamaño: " . ($this->tamaño) ? $this->tamaño : '_tamano_';
        return $s .=" }";
    }

}
